package br.com.pauloamorim.modelo;

import java.io.Serializable;
import java.lang.Integer;
import java.lang.Long;
import java.lang.String;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.*;

/**
 * Entity implementation class for Entity: Livro
 *
 */
@Entity
public class Livro implements Serializable {

	private static final long serialVersionUID = 1L;
	   
	@Id
	@Column(name = "ID_LIVRO")
	private Long chavePrimaria;
	
	@Column
	private String titulo;
	
	@Temporal(TemporalType.DATE)
	@Column
	private Date dataPublicacao;
	
	@Column
	private Integer quantidadeUnidades;
	
	@ManyToMany(mappedBy="livros", fetch=FetchType.LAZY, cascade=CascadeType.ALL)
	private List<Autor> autores = new ArrayList<Autor>();
	
	@OneToMany(mappedBy="chavePrimaria.livro", cascade=CascadeType.ALL, fetch=FetchType.LAZY)
	private List<Emprestimo> emprestimos = new ArrayList<Emprestimo>();

	public Livro() {
		super();
	}   
	
	public Long getChavePrimaria() {
		return this.chavePrimaria;
	}

	public void setChavePrimaria(Long chavePrimaria) {
		this.chavePrimaria = chavePrimaria;
	}   
	public String getTitulo() {
		return this.titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}   
	public Date getDataPublicacao() {
		return this.dataPublicacao;
	}

	public void setDataPublicacao(Date dataPublicacao) {
		this.dataPublicacao = dataPublicacao;
	}   
	public Integer getQuantidadeUnidades() {
		return this.quantidadeUnidades;
	}

	public void setQuantidadeUnidades(Integer quantidadeUnidades) {
		this.quantidadeUnidades = quantidadeUnidades;
	}
   
}
